#include <stdio.h>
#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <string.h>
#include <unistd.h>

int main( void )
{
	// 打开共享内存
	int shmid = shmget(1234, 0, 0);	

	// 打开信号量集
	int semid = semget(1234, 0, 0);

	//挂载共享内存
	int *p = shmat(shmid, NULL, 0);
	if ( p == NULL ) perror("shmat"),exit(1);

	struct sembuf sb[1] = { {0, -1, 0} };
	// 循环读取共享内存
	while ( 1 ) {
		semop(semid, sb, 1);// p操作
		printf("%d\n", *p);
	}
}

